// uni-app请求封装
/*
*router       String  请求接口
*data         Object  请求参数
*method       String  请求方法
*type         Number  提示窗口提示 0请求前后不提示  1请求前提示  2请求后提示 3请求前后提示
*bMsg         String  提示窗口请求前提示语
*eMsg		  String  提示窗口请求后提示语
*back		  Boolean 请求结束是否返回
*backTime	  Number  请求结束是否返回等待时间
*/
export default class Request {
	http (data) {
		data.backTime = data.backTime == undefined ? 2000 : data.backTime
		let path = "https://ctcs.majiangyun.com";
		
		if(data.type == 1 || data.type == 3){
			uni.showLoading({title:data.bMsg != undefined ? data.bMsg : data.back ? "提交中" : "请求中"  ,mask:true})
		}
		let header;
		if(data.method == "PUT"){
			header = {"Content-Type": "application/json"}
		}else if(data.method == "POST"){
			header = {'Content-Type':'application/x-www-form-urlencoded'}
		}else{
			header = {'Content-Type':'application/json;charset=UTF-8'}
		}
		// 返回promise
		return new Promise((resolve,reject) => {
			// 请求
			uni.request({
				url: `${path}${data.url}`,
				data: data.data,
				header,
				method:data.methods,
				success: (res) => {
					console.log(res)
					uni.hideLoading();
					if(res.data.code == 0 && data.type == 7){
						uni.showToast({title:data.eMsg,icon:"none"});
						resolve(true)
					}
					// 将结果抛出
					if(res.data.code == 0 && data.type != 2 && data.type != 3){
						uni.showToast({title:res.data.msg,icon:"none"})
						// resolve(true)
					}else if(res.data.code == 1){
						resolve(res.data.data)
						if(data.type == 2 || data.type == 3){
							if(data.back){
								uni.showToast({
									title:data.eMsg == undefined ? "提交成功" : data.eMsg,
									icon:"none",
									mask:true,
									duration:2000,
									success(res) {
										setTimeout(function(){
											uni.navigateBack({})
										},2000)
									}
								})
							}else{
								uni.showToast({title:data.eMsg == undefined ? "请求成功" : data.eMsg,icon:"none"})
							}
						}else if(data.type == 4){
							uni.showToast({
								title:res.data.msg,
								icon:"none",
								mask:true,
								duration:1500,
								success(res) {
									setTimeout(function(){
										uni.navigateBack({})
									},1500)
								}
							})

						}
					}else if(res.data.code == 101){
						uni.reLaunch({
							url:"/pages/login/login?msg=登录超时，请重新登录"
						})
					}else{
						uni.showToast({title:res.data.msg,icon:"none"})
					}
				},
				fail:(res) =>{
					uni.hideLoading();
					uni.showToast({
						title: '网络出小差了~',
						icon:"none"
					});
				}
			})
		})
	}
}